package com.uoko.common.math;

import java.math.BigDecimal;

/**
 * <p>
 *
 * </p>
 *
 * @author xianguo
 * Email xianguo@uoko.com
 * created by 2018/6/7 0007
 */
public class NumUtil {
    /**
     * 设置精度后的数字
     *
     * @param d 源
     * @param scales 小数位数
     * @return
     */
    public static Double getNumByScale(Double d, int scales) {
        if (d == null)
            return null;
        if (scales < 0)
            return d;
        BigDecimal b = new BigDecimal(d);
        return b.setScale(scales, BigDecimal.ROUND_HALF_UP).doubleValue();

    }

    /**
     * 设置2为精度后的monery精度。
     *
     * @param d 源
     * @param 
     * @return
     */
    public static Double getNumByMoneryScale(Double d) {
        if (d == null)
            return null;
        BigDecimal b = new BigDecimal(d);
        return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

    }


    /**
     * 不小于。比较两个数字。如果源数字d小于nothand那么,返回nothand,反之返回d.
     *
     * @param d 源数字
     * @param nothand 比较数字。
     * @return
     */
    public static Double noLessThan(Double d, Double nothand) {
        if (d == null)
            return nothand;
        if (nothand == null)
            return d;
        if (d - nothand < 0)
            return nothand;
        else
            return d;
    }



    /**
     * 不大于。比较两个数字。如果源数字d大于nothand那么,返回nothand,反之返回d.
     *
     * @param d 源数字
     * @param nothand 比较数字。
     * @return
     */
    public static Double noGreaterThan(Double d, Double nothand) {
        if (d == null)
            return nothand;
        if (nothand == null)
            return d;
        if (d - nothand > 0)
            return nothand;
        else
            return d;
    }
}
